[C] Arquivos e Stat
Publicado por Enzo de Brito Ferber (última atualização em 23/09/2010)
[ Hits: 8.442 ]
Homepage: http://www.maximasonorizacao.com.br
Programa simples mostrando como usar a função stat(), e como manipular aquivos de uma forma bem simples. Ponteiros também são usados.
Baixe:
$ tar -xzvf loadfile.tar.gz
$ cd loadfile
$ ./loadfile text
;)
[]'s
/* loadfile.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
int main ( int argc, char *argv[] )
{
char *fullfile, *p, *p2, c ;
struct stat fileinfo;
FILE *openfile;
if ( argc < 2 )
{
printf ( "[*] Usage: %s <file>\n", argv[0] );
exit ( EXIT_FAILURE );
}
/* read-binary permission */
openfile = fopen ( argv[1], "rb" );
if ( !openfile )
{
printf ( "[*] Can't open file %s\n", argv[1] );
exit ( EXIT_FAILURE );
}
/* file info for file size */
if ( stat ( argv[1], &fileinfo ) == -1 )
{
printf ( "[*] Can't stat() file %s\n", argv[1] );
exit ( EXIT_FAILURE );
}
/* alloc memory for the pointer
*
* fileinfo.st_size = size of the file in bytes
*/
fullfile = ( char * ) malloc ( fileinfo.st_size * sizeof ( char ));
if ( !fullfile )
{
printf ( "[*] Can't malloc() %d bytes\n", fileinfo.st_size );
exit ( EXIT_FAILURE );
}
/* To view all the resources of the stat structure:
*
* $ man stat
*/
printf ( "File info:\n" );
printf ( "UID : %d\n", fileinfo.st_uid );
printf ( "GID : %d\n", fileinfo.st_gid );
printf ( "Size: %d bytes\n", fileinfo.st_size );
printf ( "Mode: %8.8x\n", fileinfo.st_mode );
/* reference pointer */
p = fullfile;
while ( 1 )
{
if ( feof ( openfile )) break;
fscanf ( openfile, "%c", &(*(p++)) );
}
/* print file */
p2 = fullfile;
while ( fullfile < p ) putchar ( *(fullfile++) );
/* put back in place what you use */
free ( p2 );
fclose ( openfile );
return 0;
}
Leitura de arquivo texto separando as colunas
Codigo para criar arquivo de log
Agenda eletrônica completa em C
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Warcraft II Remastered no Linux? (5)
O programa assinador digital (5)









